package cn.edu.tju.elm.repository;

import java.util.List;
import java.util.Optional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import cn.edu.tju.elm.model.Refund;

/**
 * 退款数据访问层
 */
@Repository
public interface RefundRepository extends JpaRepository<Refund, Long> {
    
    /**
     * 根据订单ID查找退款申请
     * @param orderId 订单ID
     * @return 退款申请列表
     */
    List<Refund> findByOrderId(Long orderId);
    
    /**
     * 查找最新的一条退款申请
     * @param orderId 订单ID
     * @return 退款申请
     */
    Optional<Refund> findTopByOrderIdOrderByApplyTimeDesc(Long orderId);
    
    /**
     * 查找商家的所有退款申请
     * @param businessId 商家ID
     * @return 退款申请列表
     */
    List<Refund> findByOrder_Business_IdOrderByApplyTimeDesc(Long businessId);
    
    /**
     * 查找待处理的退款申请
     * @param status 退款状态
     * @return 退款申请列表
     */
    List<Refund> findByStatusOrderByApplyTimeAsc(Integer status);
} 